pv-on-hvm: hvm_domain_use_pirq return positive no matter if the evtchn is bound
authorStefano Stabellini <stefano.stabellini@eu.citrix.com>
Thu, 16 Jun 2011 15:17:35 +0000 (16:17 +0100)
committerStefano Stabellini <stefano.stabellini@eu.citrix.com>
Thu, 16 Jun 2011 15:17:35 +0000 (16:17 +0100)
This patch fixes PV on HVM interrupt remapping with recent Linux
kernels and upstream qemu.  hvm_domain_use_pirq should return positive
even if the evtchn is not currently bound. If it doesn't assert_irq
ends up injecting legacy interrupts even after the guest disabled the
irq.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
xen/arch/x86/irq.c

index 635c7801f9938493f545b9a05901f3c81915eb01..0a84bf8dfbedb06e988861dff52cf737bba1dadd 100644 (file)
@@ -1951,14 +1951,8 @@ int unmap_domain_pirq_emuirq(struct domain *d, int pirq)
 
 int hvm_domain_use_pirq(struct domain *d, int pirq)
 {
-    int emuirq;
-    
     if ( !is_hvm_domain(d) || pirq < 0 )
         return 0;
 
-    emuirq = domain_pirq_to_emuirq(d, pirq);
-    if ( emuirq != IRQ_UNBOUND && d->pirq_to_evtchn[pirq] != 0 )
-        return 1;
-    else
-        return 0;
+    return (domain_pirq_to_emuirq(d, pirq) != IRQ_UNBOUND);
 }